package com.ruicar.afs.cloud.channel.witness.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruicar.afs.cloud.channel.witness.entity.ChannelWitnessInfoTemp;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Method $method$
 * @Author Ice
 * @Return $return$
 * @Exception $exception$
 * @Date $date$ $time$
 */
public interface ChannelWitnessInfoTempMapper extends BaseMapper<ChannelWitnessInfoTemp> {
    IPage<List<ChannelWitnessInfoTemp>> getWitnessList(Page page, @Param("query") ChannelWitnessInfoTemp query, @Param("ids") List<Long> ids);

    IPage<List<ChannelWitnessInfoTemp>> getChannelWitnessListData(Page page, @Param("query") ChannelWitnessInfoTemp query);

    IPage<List<ChannelWitnessInfoTemp>> getWitnessUseChannel(Page page, @Param("query") ChannelWitnessInfoTemp query);

    IPage<List<ChannelWitnessInfoTemp>> getRegister(Page page, @Param("query") ChannelWitnessInfoTemp query, @Param("roles") List<String> roles, @Param("key") String key);

    IPage<List<ChannelWitnessInfoTemp>> getWitnessOnlyOtherAll(Page page, @Param("query") ChannelWitnessInfoTemp query, @Param("ids") List<Long> ids);

    IPage<List<ChannelWitnessInfoTemp>> getWitnessOtherAllOwnOnly(Page page, @Param("query") ChannelWitnessInfoTemp query, @Param("ids") List<Long> ids,@Param("type") String type);

    IPage<List<ChannelWitnessInfoTemp>> getWitnessOtherOnly(Page page, @Param("query") ChannelWitnessInfoTemp query, @Param("ids") List<Long> ids,@Param("type") String type);

    IPage<List<ChannelWitnessInfoTemp>> getWitnessOtherOnlyOwnOnly(Page page, @Param("query") ChannelWitnessInfoTemp query, @Param("ids") List<Long> ids,@Param("typeOther") String typeOther ,@Param("typeOwn") String typeOwn);

    IPage<List<ChannelWitnessInfoTemp>> getWitnessOtherOnlyOwnAll(Page page, @Param("query") ChannelWitnessInfoTemp query, @Param("ids") List<Long> ids,@Param("typeOther") String typeOther);

    IPage<List<ChannelWitnessInfoTemp>> getWitnessOwnAll(Page page, @Param("query") ChannelWitnessInfoTemp query, @Param("ids") List<Long> ids );

    IPage<List<ChannelWitnessInfoTemp>> getWitnessOwnOnly(Page page, @Param("query") ChannelWitnessInfoTemp query, @Param("ids") List<Long> ids ,@Param("typeOwn") String typeOwn);
}
